#pragma once

#include <entt/entt.hpp>

#include <string>
#include <vector>

#include "qlib/all.h"

#include "../../render/components.hpp"

namespace qbe::draw::keyPoint {

enum struct State { None = 0, Wait, Upatde, Complete, Cancel };
struct Models {
  qlib::KeyPoint::s_ptr cache_keyPoint;
  render::LineListMesh mesh;

  State state = State::None;
  entt::entity entity = entt::null;
  entt::entity complete_entity = entt::null;

  std::string str = "";
  double size = 0;
  bool create_label = false;

  std::vector<std::string> string_arr;
  int count = 0;

  bool clear_tag = false;
  bool is_first_ui = true;
  bool first_open = false;
};
}  // namespace qbe::draw::keyPoint